package com.example.dao;

import com.example.entity.Manager;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author fyx
 * @description 针对表【rbac_manager】的数据库操作Mapper
 * @createDate 2021-11-25 17:52:15
 * @Entity com.example.entity.Manager
 */
public interface ManagerDao {

    /**
     * 通过id查询
     *
     * @param id 唯一标识符
     * @return Manager 对象
     */
    Manager findManagerById(int id);

    Manager findOneByAccount(@Param("account") String account);

    /**
     * 新建一个manager
     *
     * @param manager 传入一个manager对象，id不需要赋值
     */
    void addManager(Manager manager);

    /**
     * 通过id删除manager, 并返回是否删除成功,
     * 不处理由于异常导致的失败行为, 仅处理无此id对应的manager导致的删除失败
     *
     * @param id manager id
     * @return 是否删除成功
     */
    int deleteById(int id);

    /**
     * 通过新的manager修改原有的manager, id必须提供
     * 其余字段,若为null,则不会修改该字段
     *
     * @param manager 已经修改的manager
     */
    void updateManager(Manager manager);

    /**
     * 查询所有数据
     * @return list
     */
    List<Manager> findAll();
}




